home *** CD-ROM | disk | FTP | other *** search
/ Revista do CD-ROM 124 / cd-rom 124.iso / edu / tuxmath / tuxmathscrabble / tuxmathscrabble.exe / repr.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2003-11-16  |  4.3 KB  |  149 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.2)
  3.  
  4. __all__ = [
  5.     'Repr',
  6.     'repr']
  7.  
  8. class Repr:
  9.     
  10.     def __init__(self):
  11.         self.maxlevel = 6
  12.         self.maxtuple = 6
  13.         self.maxlist = 6
  14.         self.maxdict = 4
  15.         self.maxstring = 30
  16.         self.maxlong = 40
  17.         self.maxother = 20
  18.  
  19.     
  20.     def repr(self, x):
  21.         return self.repr1(x, self.maxlevel)
  22.  
  23.     
  24.     def repr1(self, x, level):
  25.         typename = type(x).__name__
  26.         if ' ' in typename:
  27.             parts = typename.split()
  28.             typename = '_'.join(parts)
  29.         
  30.         if hasattr(self, 'repr_' + typename):
  31.             return getattr(self, 'repr_' + typename)(x, level)
  32.         else:
  33.             s = `x`
  34.             if len(s) > self.maxother:
  35.                 i = max(0, (self.maxother - 3) // 2)
  36.                 j = max(0, self.maxother - 3 - i)
  37.                 s = s[:i] + '...' + s[len(s) - j:]
  38.             
  39.             return s
  40.  
  41.     
  42.     def repr_tuple(self, x, level):
  43.         n = len(x)
  44.         if n == 0:
  45.             return '()'
  46.         
  47.         if level <= 0:
  48.             return '(...)'
  49.         
  50.         s = ''
  51.         for i in range(min(n, self.maxtuple)):
  52.             if s:
  53.                 s = s + ', '
  54.             
  55.             s = s + self.repr1(x[i], level - 1)
  56.         
  57.         if n > self.maxtuple:
  58.             s = s + ', ...'
  59.         elif n == 1:
  60.             s = s + ','
  61.         
  62.         return '(' + s + ')'
  63.  
  64.     
  65.     def repr_list(self, x, level):
  66.         n = len(x)
  67.         if n == 0:
  68.             return '[]'
  69.         
  70.         if level <= 0:
  71.             return '[...]'
  72.         
  73.         s = ''
  74.         for i in range(min(n, self.maxlist)):
  75.             if s:
  76.                 s = s + ', '
  77.             
  78.             s = s + self.repr1(x[i], level - 1)
  79.         
  80.         if n > self.maxlist:
  81.             s = s + ', ...'
  82.         
  83.         return '[' + s + ']'
  84.  
  85.     
  86.     def repr_dict(self, x, level):
  87.         n = len(x)
  88.         if n == 0:
  89.             return '{}'
  90.         
  91.         if level <= 0:
  92.             return '{...}'
  93.         
  94.         s = ''
  95.         keys = x.keys()
  96.         keys.sort()
  97.         for i in range(min(n, self.maxdict)):
  98.             if s:
  99.                 s = s + ', '
  100.             
  101.             key = keys[i]
  102.             s = s + self.repr1(key, level - 1)
  103.             s = s + ': ' + self.repr1(x[key], level - 1)
  104.         
  105.         if n > self.maxdict:
  106.             s = s + ', ...'
  107.         
  108.         return '{' + s + '}'
  109.  
  110.     
  111.     def repr_str(self, x, level):
  112.         s = `x[:self.maxstring]`
  113.         if len(s) > self.maxstring:
  114.             i = max(0, (self.maxstring - 3) // 2)
  115.             j = max(0, self.maxstring - 3 - i)
  116.             s = `x[:i] + x[len(x) - j:]`
  117.             s = s[:i] + '...' + s[len(s) - j:]
  118.         
  119.         return s
  120.  
  121.     
  122.     def repr_long(self, x, level):
  123.         s = `x`
  124.         if len(s) > self.maxlong:
  125.             i = max(0, (self.maxlong - 3) // 2)
  126.             j = max(0, self.maxlong - 3 - i)
  127.             s = s[:i] + '...' + s[len(s) - j:]
  128.         
  129.         return s
  130.  
  131.     
  132.     def repr_instance(self, x, level):
  133.         
  134.         try:
  135.             s = `x`
  136.         except:
  137.             return '<' + x.__class__.__name__ + ' instance at ' + hex(id(x))[2:] + '>'
  138.  
  139.         if len(s) > self.maxstring:
  140.             i = max(0, (self.maxstring - 3) // 2)
  141.             j = max(0, self.maxstring - 3 - i)
  142.             s = s[:i] + '...' + s[len(s) - j:]
  143.         
  144.         return s
  145.  
  146.  
  147. aRepr = Repr()
  148. repr = aRepr.repr
  149.